package srv;

import java.util.ArrayList;
import java.util.List;

import beans.CotizacionBean;
import beans.ItemSolicitudCompraBean;
import beans.ProveedorBean;
import beans.RodamientoBean;
import beans.SolicitudCompraBean;
import dao.HibernateSolicitudCompraBeanDAO;
import entities.CotizacionEntity;
import entities.ItemSolicitudCompraEntity;
import entities.ListaPreciosEntity;
import entities.ProveedorEntity;
import entities.RodamientoEntity;
import entities.SolicitudCompraEntity;

public class SolicitudCompraSRV 
{
	private static HibernateSolicitudCompraBeanDAO dao;
	private static SolicitudCompraSRV instancia;
	
	static {
		dao = HibernateSolicitudCompraBeanDAO.getInstancia();
	}
	
	public static SolicitudCompraSRV getInstancia()
	{
		if (instancia == null)
		{
			instancia = new SolicitudCompraSRV();
		}
		return instancia;
	}
	
	public SolicitudCompraEntity pasadoDesdeBean( SolicitudCompraBean solicitudCompraBean )
	{
		SolicitudCompraEntity solicitudCompra = new SolicitudCompraEntity();
		
		CotizacionEntity cotizacion = CotizacionSRV.getInstancia().pasadoDesdeBean( solicitudCompraBean.getCotizacion());
		solicitudCompra.setCotizacion(cotizacion);
		
		solicitudCompra.setFecha( solicitudCompraBean.getFecha());
		solicitudCompra.setId( solicitudCompraBean.getId());
		
		List<ItemSolicitudCompraEntity> items = new ArrayList <ItemSolicitudCompraEntity>();
		for( ItemSolicitudCompraBean itemBean : solicitudCompraBean.getItems())
		{
			ItemSolicitudCompraEntity item = new ItemSolicitudCompraEntity();
			item.setCantidad( itemBean.getCantidad());
			
			item.setPrecio( itemBean.getPrecio());
			
			RodamientoEntity rodamiento = RodamientoSRV.getInstancia().pasadoDesdeBean( itemBean.getRodamiento());
			item.setRodamiento(rodamiento);
			items.add( item );
		}
 		
		ProveedorEntity proveedor = ProveedorSRV.getInstancia().pasadoDesdeBean( solicitudCompraBean.getProveedor());
		solicitudCompra.setProveedor(proveedor);
		
		return solicitudCompra;
	}
	
	public SolicitudCompraBean pasadoDesdeEntity( SolicitudCompraEntity solicitudCompra )
	{
		SolicitudCompraBean solicitudCompraBean = new SolicitudCompraBean();
		
		CotizacionBean cotizacion = CotizacionSRV.getInstancia().pasadoDesdeEntity( solicitudCompra.getCotizacion());
		solicitudCompraBean.setCotizacion( cotizacion );
		
		solicitudCompra.setFecha( solicitudCompraBean.getFecha());
		solicitudCompra.setId( solicitudCompraBean.getId());
		
		List<ItemSolicitudCompraBean> items = new ArrayList <ItemSolicitudCompraBean>();
		for( ItemSolicitudCompraEntity itemEntity : solicitudCompra.getItems())
		{
			ItemSolicitudCompraBean item = new ItemSolicitudCompraBean();
			item.setCantidad( itemEntity.getCantidad());
			
			item.setPrecio( itemEntity.getPrecio());
			
			RodamientoBean rodamiento = RodamientoSRV.getInstancia().pasadoDesdeEntity( itemEntity.getRodamiento());
			item.setRodamiento(rodamiento);
			items.add( item );
		}
 		
		ProveedorBean proveedor = ProveedorSRV.getInstancia().pasadoDesdeEntity( solicitudCompra.getProveedor());
		solicitudCompraBean.setProveedor(proveedor);
		
		return solicitudCompraBean;
	}
	
	public void grabarSolicitudCompra( SolicitudCompraBean solCompra )
	{
		SolicitudCompraEntity solComp = this.pasadoDesdeBean( solCompra );
		dao.grabarSolicitudCompra( solComp );
	}
	
	/*
	public boolean aprobarSolicitudCompra( SolicitudCompraBean solComp)
	{
		return dao.aprobarSolicitudCompra( solComp );
	}
	*/
}
